package com.th.supcom.pds.impl.manager;


import java.util.List;
import java.util.Map;

import com.th.supcom.pds.domain.pojo.PdsSupplyDetail;
import com.th.supcom.pds.domain.pojo.PdsSupplyPro;
import com.th.supcom.pds.domain.vo.PdsSupplyDetailVO;
import com.th.supcom.pds.domain.vo.PdsSupplyVO;

/**
 * PdsSupplyDetail 管理接口.
 *
 * 供药单明细表.  
 */
public interface PdsSupplyDetailManager
{   
    
    /**
     * 通过主键ID查询表记录.
     * 
     * @param id 主键ID
     * @return 返回PdsSupplyDetail
     */
    public PdsSupplyDetail getPdsSupplyDetailByID (Long id);
    
    /**
     * 获得当前表的序列号.
     * 
     * @return Long 当前序列号.
     */
    public Long getPdsSupplyDetailSeq ();
    
    /**
     * 通过传输对象对应值查询表记录.
     * 
     * @param pdsSupplyDetail 传输对象.
     * @return PdsSupplyDetail 结果对象.
     */
    public List<PdsSupplyDetail> findPdsSupplyDetailListByExample (PdsSupplyDetail pdsSupplyDetail);
        
    /**
     * 通过传输对象对应值查询表记录条数.
     * 
     * @param pdsSupplyDetail 传输对象.
     * @return 条数.
     */
    public int findPdsSupplyDetailCountByExample(PdsSupplyDetail pdsSupplyDetail);
    
    /**
     * 通过传输对象对应值查询表记录.
     * 
     * @param params Map入参对象.
     * @return PdsSupplyDetail 结果对象集.
     */
    public List <PdsSupplyDetail> findPdsSupplyDetailListByMap (Map <String, Object> params);
      
    /**
     * 通过传输对象对应值查询表记录并且进行分页.
     * 
     * @param params Map入参对象.
     * @param offset 起始页.
     * @param limit 结束页.
     * @return PdsSupplyDetail 结果对象集.
     */
    public List <PdsSupplyDetail> findPdsSupplyDetailListWithPageByMap (Map <String, Object> params, Integer offset, Integer limit);
    
    /**
     * 通过传输对象对应值查询表记录并且进行分页统计.
     * 
     * @param params Map入参对象.
     * @return Integer 查询结果总条数.
     */
    public Integer findPdsSupplyDetailCountByMap (Map <String, Object> params);
    
    /**
     * 通过主键ID更新表记录.
     * 
     * @param pdsSupplyDetail 要更新的传输对象
     * @return 返回更新条数
     */
    public int modifyPdsSupplyDetail(PdsSupplyDetail pdsSupplyDetail);
    
    /**
     * 通过主键ID更新表记录，字段有值才更新.
     * 
     * @param pdsSupplyDetail 更新的传输对象.
     * @return 更新条数.
     */
    public int modifyPdsSupplyDetailByExample(PdsSupplyDetail pdsSupplyDetail);
    
    /**
     * 通过VO对象插入记录.
     * 
     * @param pdsSupplyDetail 要插入的传输对象
     */
    public void addPdsSupplyDetail(PdsSupplyDetail pdsSupplyDetail);
    
    /**
     * 通过主键ID删除表记录.
     * 
     * @param id 要删除的表的主键ID
     * @return 删除条数
     */
    public int removePdsSupplyDetailByID (Long id);
    
    /**
     * 通过传入的Map参数删除表记录.
     * 
     * @param params 带条件的传入参数.
     * @return 删除条数.
     */
    public int removePdsSupplyDetailByMap (Map <String, Object> params);
    /**
     * 批量插入明细
     * @param list
     * add by Zli
     */
    public void insertBatchPdsSupplyDetail(List <PdsSupplyDetail>list);
    /**
     * 批量更新明细
     * @param list
     * add by Zli
     */
    public void updateBatchPdsSupplyDetail(List <PdsSupplyDetail>list);
    
    /**
     * 根据单据号查询供药明细信息
     * 
     * @param pdsSupplyDetailVO
     * @return
     */
    public List <PdsSupplyDetailVO> findPdsSupplyDetailByRcptNo (Map <String, Object> params);
    
    /**
     * 批量修改供药详情表
     * @param pdsSupplyDetailVOs
     * @return
     */
    public int modifyPdsSupplyDetailByList(List <PdsSupplyDetailVO> pdsSupplyDetailVOs);
    
    
    /**
     * 批量查询供药明细信息
     * @param pdsSupplyDetailVOs
     * @return
     */
    public List <PdsSupplyDetail> findPdsSupplyDetailListByList(List <PdsSupplyDetailVO> pdsSupplyDetailVOs);
    
    /**
     * 批量更新明细表的批次号
     * @param pdsSupplyDetailVOs
     * @return
     */
    public int modifyPhamBatchNumberByList(List <PdsSupplyDetailVO> pdsSupplyDetailVOs);
    /** 公司版权信息. */
    public static final String copyright = "Copyright 2015, TH Supcom Corporation";
    
    /** 提交路径. */
    public static final String SCC_BRANCH = "$URL$";
    
    /** 提交日期. */
    public static final String SCC_LAST_MODIFICATION_DATE = "$Date$";
    
    /** 最终修改人员. */
    public static final String SCC_LAST_MODIFIER_NAME = "$Author$";
    
    /** 最终版本号. */
    public static final String SCC_REVISION = "$Revision$";
}